Location and Time Sensitive Wireless Calendaring

ABSTRACT

A computer-implemented method provides location-sensitive and time-sensitive calendaring to a wireless device, such as a cell phone, pager, PDA, etc. A user&#39;s calendar is maintained with a number of appointments, start times and end times for the appointments, meeting place and a list of attendees for the appointments. When the present time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar user, the location of the user is determined based on the location of the wireless device. The location of the meeting place is also determined. Using historical data (of the user or others), the estimated time of arrival of the user at the meeting place is determined. If the estimated time of arrival is after the meeting start time, then a late message may be sent to the user and/or to the other meeting attendees.

TECHNICAL FIELD

This invention relates to a compute-implemented method and system forproviding location and time sensitive wireless calendaring informationto users.

BACKGROUND OF THE INVENTION

Calendaring software programs and personal information managers havegreatly simplified the task of maintaining contacts and schedulingappointments. Time is an important aspect of calendaring softwareprograms. Typically, an appointment or task has a start time and an endtime. An appointment may also have a list of attendees. A reminder maybe sent to the user of the calendaring program to remind the user whenan appointment is approaching. One aspect that is lacking in calendaringprograms is location. Calendaring programs do not provide functionalityto users based on the user's present location.

Wireless devices with GPS capability (or a similar capability) are ableto provide location information to a user. Unfortunately, these deviceslack the ability to tie the user's location to a user's appointmentinformation (in a calendar).

Thus, there is a need for a computer-implemented method and system forproviding location and time-sensitive wireless calendaring informationto users.

SUMMARY OF THE INVENTION

The present invention satisfies the above described needs by providing,in one embodiment, a computer-implemented method for providinglocation-sensitive and time-sensitive calendaring to a wireless device,such as a cell phone, pager, personal digital assistant (PDA), etc. Auser's calendar is maintained in a calendar program module with a numberof appointments, start times and end times for the appointments, meetingplaces and a list of attendees for the appointments. When the presenttime reading is within a predetermined minimum of a meeting start timeof an appointment of a calendar of a user, the location of the user isdetermined based on the location of the wireless device. The location ofthe meeting place is also known. Using historical data (of the user orothers), the estimated time of arrival of the user at the meeting placeis determined. If the estimated time of arrival is after the meetingstart time, then a late message may be sent to the wireless devices ofthe user and/or to the other fleeting attendees.

In one embodiment, the computer-implemented calendar program may bemaintained in the wireless device itself. For example, the calendarprogram may be part of a personal digital assistant (PDA). In anotherembodiment, the calendar program may be maintained on a server connectedto a wireless network. Multiple users, such as corporate users, may beassociated with the server.

These and other features, advantages, and aspects of the presentinvention may be more clearly understood and appreciated from a reviewof the following detailed description of the disclosed embodiments andby reference to the appended drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary operating environment 100 inaccordance with an embodiment of the present invention.

FIG. 2 is a flow diagram illustrating method for providinglocation-sensitive and time-sensitive calendaring to a wireless devicein accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

The present invention is directed toward a method and system for usingposition information to augment a calendaring application. Positions ofwireless devices may be tracked over time to produce commute statistics.Each wireless device is typically associated with a user. The commutestatistics and current position of the user may be used to predictwhether the user will be late for a scheduled appointment. If so, then amessage may be transmitted to the user and/or the other scheduledattendees of the meeting to notify them that the user will be late tothe meeting. The message may also schedule a follow-up meeting at alater time when the user is scheduled to arrive. The invention may alsobe used for a roll call function so that a user may submit a roll callrequest and receive the current locations and/or approximate arrivaltimes of the scheduled attendees for a meeting.

Referring now to the drawings, in which like numerals represent likeelements throughout the several figures, aspects of the presentinvention and the exemplary operating environment will be described.

FIG. 1 is a block diagram of an exemplary operating environment 100 inaccordance with an embodiment of the present invention. The environment100 comprises a plurality of wireless devices connected to a wirelessnetwork 105. The wireless network may be any type of wireless networkknown to those skilled in the art such as a cellular network or apersonal communications service (PCS) network. The wireless devices maybe any of those known to those skilled in the art, such as a laptopcomputer 110 with a wireless connection (such as a wireless modem), awireless telephone 115, a pager 120 or a personal digital assistant(PDA) 125 with a wireless connection (such as a wireless modem). Thewireless devices send and receive wireless transmissions, such as radiosignals, via wireless network 105.

It should be understood that wireless network 105 is any wirelessnetwork known to those skilled in the art and may include well-knowncomponents such as cell towers, mobile switching centers (MSCs), and thelike.

The wireless network 105 is also connected to a server 130, preferablyvia a wireline connection. When the server 130 wants to send a messageto one of the wireless devices, the server may transmit the message viathe wireline connection to the wireless network. The wireless networkmay then transmit the message to the appropriate wireless device. Themessage may be any wireless message known to those skilled in the art,such as a short messaging service (SMS) message, an HTTP message or avoice message (using text-to-speech converters).

The server 130 is also connected to a computer 135 and/or a workstation140. The server 130 may also be connected to a database 145.

A calendaring program (not shown) may be run on the server 130, on thecomputer 135 and/or workstation 140. A user operating computer 135,workstation 140 or a similar component connected to server 130 may usethe calendaring program to schedule appointments, tasks and meetings.Associated with the appointments, tasks and/or meetings may be a numberof attendees, a start time, and a meeting location. A separate calendarmay be maintained for each user of the server. The server may beoperated in a local area network (LAN) configuration, a wide areanetwork (WAN) configuration or any other configuration known to thoseskilled in the art.

The database 145 may comprise a list of all users, their associatedcalendars and their associated wireless devices. When the server 130needs to locate a user, the server determines the wireless deviceassociated with the user and it sends a request message to the wirelessnetwork 105. The wireless network locates the user based on the user'swireless device and sends the location information back to the server130. The location information may be latitude and longitude information,or similar mapping or location coordinates.

It should be understood that the location of the wireless device may bedetermined using well-known methods such as triangulation, GPS, E-911,etc.

Triangulation is a method of locating the source of a radio signalthrough the use of three receivers (such as cell towers) each of whichfocuses on the direction of maximum signal strength. Through the use ofthree receivers, it is possible to plot the location of the transmitter(the wireless device). Of course, the accuracy of triangulation may beaffected by the radio signals bouncing off of and being absorbed byphysical obstructions such as buildings and trees. Triangulation mayalso be referred to as angle of arrival. This process can also beaccomplished using one or two receivers employing smart antennatechnology.

Global Positioning System (GPS) is a system that precisely determines alocation anywhere on earth. The GPS comprises around twenty satellitesorbiting the earth. GPS is based on satellite ranging. Satellite rangingdetermines the position of a GPS device by measuring the distance of theGPS device from a group of satellites in space. The satellites act asprecise reference points. To determine the precise position, latitude,longitude and altitude (and possible velocity), a fix with at least foursatellites is required.

In a preferred embodiment, each GPS satellite transmits on twofrequencies: 1575.42 MHz (referred to as L1) and 1227.60 MHz (referredto as L2). Along with other data, the satellite transmits its ownposition, time and a pseudo random noise code (PRN). The PRN is used bythe receiver to calculate range. If the locations of several satellitesare known and the precise range of the GPS device from these satellites,then the location and altitude of the GPS device may be determined. Thesatellites derive time from on-board celestial navigation equipment andatomic clocks accurate to one second in 300,000 years.

The ranging of the GPS device may function as follows. The GPS deviceand the satellites include a long sequence of bits. By aligning andcomparing an internal stream of bits in the GPS device to the receivedbits from the satellite, a shift error or displacement can be calculatedrepresenting the travel time from the satellite to the GPS device.Because the GPS device also knows the precise location of the satelliteand the range from the satellite to the GPS device, a triangulationcalculation may provide two dimensional position (latitude andlongitude) from three satellites. If a fourth satellite is used,elevation information may be obtained.

There are actually two PRN strings transmitted: a course acquisitioncode (C/A code) and a precision code (P code). The coarse code sequencecomprises 1023 bits repeated every 266 days. However, each satellitetransmits a seven day segment re-initialized at midnight Saturday orSunday of each week. By using both codes, a very accurate position canbe calculated. By transmitting the codes at different frequencies, eventhe signal attenuating effects of the ionosphere can to some degree befactored out. At the present time, civilian users are only authorized touse the coarse acquisition code and this is referred to as the GPSStandard Positioning System (SPS) with an accuracy of about 5 meters.Military users use both the coarse acquisition code and the precisioncode in what is referred to as the Precise Positioning System (PPS) withan accuracy to centimeters.

Although triangulation and GPS may be used to provide locationinformation, other well-known locating techniques may also be used. Forexample, location may also be provided using the automatic locationinformation (ALI) provided for E-911 service.

After the location of the wireless device is received from the wirelessnetwork using one of the above-described techniques or another knowntechnique, the server may then use the user's location to store commutestatistics. Commute statistics are typically stored as a useridentifier, a time stamp and location information. The commutestatistics may be used to determine how long it typically takes to getfrom point A to point B. The commute statistics may be based on aparticular user, such as how long does it take user A to get from pointA to point B. Alternatively, the commute statistics may be based on agroup of users, such as how long does it take an average user of group Ato get from point A to point B.

Based on these commute statistics, the server may perform calculationssuch as determining how long it will take the user to get to their nextscheduled appointment. Based on this information, late messages may besent to appropriate parties, appointments may be reschedules,alternative routes may be suggested to the user, etc.

Having described an exemplary operating environment in reference to FIG.1, a flow diagram illustrating a method 200 for providinglocation-sensitive and time-sensitive calendaring to a wireless devicein accordance with an embodiment of the present invention will bedescribed in reference to FIGS. 1 and 2. It should be understood thatthe steps described herein in reference to flow diagrams are stepsexecuted by a computer in response to instructions received from acomputer-readable medium.

The method 200 begins at step 205 where it is determined that a user'sappointment is approaching. For example, in one embodiment, it may bedetermined that a time reading (the present time) is within apredetermined minimum of a meeting start time of an appointment of acalendar of a user. The appointment may comprise a meeting start time, ameeting place and a plurality of meeting attendees. Typically, thecalendar information may be stored in server 130 and/or database 145.The server 130 may determine the approaching appointments based on thisstored information.

At step 210, the location of the user associated with the approachingappointment is determined. Typically, either in the database 145 orserver 130, will be a file with the wireless device(s) associated with auser. Thus, if user A is associated with a cell phone with directorynumber 555-555-5555, then the server will request that the wirelessnetwork 105 determine the location of user A based on the location ofthe wireless device associated with user A (the cell phone withdirectory number 555-555-5555).

At step 215, the location of the meeting place is determined. Aplurality of meeting places and their location coordinates may be storedin database 145 and/or server 130. For example, if the user enters“Plaza Hotel” into his calendar for the meeting place, then a databasemay cross-reference the meeting place Plaza Hotel with its locationcoordinates (such as its street address, latitude/longitude, etc.)Alternatively, the user may directly enter the location of the meetingplace when entering the appointment into his calendar.

At step 220, the estimated time of arrival of the user at the meetingplace is determined. The estimated time of arrival may be determinedusing historical data. For example, by collecting data from differentwireless devices (either those of the user or those of other users), theserver may maintain a database of historical data. Typically, thehistorical data may comprise a user identifier, a time stamp and alocation identification. The server may use the historical data toperform calculations, such as determining the average commute timebetween two different locations. These calculations may be performedbased on a particular user (such as how long does it typically take user1 to get from point A and point B). Alternatively, the calculations maybe performed based on multiple users (such as, one average, how longdoes it take someone to get from point A to point B). The historicaldata may also be obtained from a third party, such as a traffic source,which tracks the traffic trends hi a city. It should also be understoodthat, in some embodiments, an indication may be stored as to whether theuser is traveling by foot, bicycle, motorcycle, car, train, etc. so thatan accurate estimated time of arrival may be calculated. This mode oftransportation indication may be set by the user at their computer (135or 140). Alternatively, the user may set an indication on their wirelessdevice to indicate their mode of transportation and the indication maybe transmitted back to the server 130.

The estimated time of arrival may also be calculated based on thevelocity of the user. The velocity may sometimes be calculated using GPSand other means. Thus, the velocity of the user, the user's currentlocation and the meeting location may be used to determine an estimatedtime of arrival at the meeting location.

At step 225, if the estimated time of arrival is after the meeting starttime, then a late message may be sent. The method 200 then ends. Thelate message may be sent to the user and/or to the plurality of meetingattendees. For example, a message may be sent to the user indicatingthat his estimated time of arrival is after the meeting start time andasking the user whether he wants to send a message to the other meetingattendees. If so, then a message is sent to the other meeting attendees.

Typically, the late message will be a SMS message or another type oftext message. Alternatively, the message may be a voice message. To sendthe message, the server locates the wireless device(s) associated withthe user and the meeting attendees. Typically, this information isstored in a database, such as database 145. The server connects to thewireless network through conventional means and the wireless networksends the message to the appropriate wireless device. For example, theserver may send an e-mail message to the pager service provider of theuser. The e-mail message indicates the estimated time of arrival of theuser at the meeting. The pager service provider then sends the page tothe user.

In alternative embodiments of the present invention, a roll callmechanism may be implemented. The roll call mechanism would allow a userto send out a roll call request for a meeting. The server would thendetermine all of the meeting attendees and, through requests to thewireless network, the server would determine the location of all theattendees for the meeting. The server may send the location of allmeeting attendees to the user. Alternatively, the server may performcalculations to determine the estimated times of arrival for each of themeeting attendees and the server may send estimated times of arrival tothe user and/or all of the meeting attendees.

In another embodiment, the invention may be connected to a mappingprogram to provide a map to be displayed to the user. The server may beable to determine the user's location, the closest appointment for theuser and which route will get the user there on time. Determining theclosest appointment may be particularly important for service calls,which is a particular use of an embodiment of the present invention.Thus, a service representative will be sent to the closest appointmentsand will be notified via their wireless device which appointment isnext. The customer may receive a page, an e-mail, a telephone call, etc.notifying the customer where the service representative is and theestimated time of arrival of the service representative.

In another embodiment, the invention may be able to automatically enterthe meeting location based on the user's present location. For example,suppose a user is at a meeting at The Plaza Hotel. If the user enters anew appointment into their wireless device, such as a PDA, the defaultmeeting location may be entered as The Plaza Hotel based on the locationinformation received by the server.

In another embodiment, the present invention may automaticallyreschedule an appointment if the user is going to be late and sendnotifications to the user and the other meeting attendees of the newmeeting time. This is particularly effective because preferably theserver controls the calendars of the user and the meeting attendees.

Although the present invention has been described above as implementedin a preferred environment and using preferred methods, it will beunderstood that alternative embodiments will become apparent to thoseskilled in the art to which the present invention pertains withoutdeparting from its spirit and scope. Accordingly, the scope of thepresent invention is defined by the appended claims rather than theforegoing description.

What is claimed is:
 1. A method, comprising: receiving, responsive to aroll call request, a location of a wireless device; determining, by aserver, an appointment location among multiple appointment locationsthat is closest to the location of the wireless device; scheduling anappointment at the appointment location determined to be the closest;calculating, by the processor, an estimated time of arrival of thewireless device at the appointment location of the scheduledappointment, wherein the time of arrival is estimated based upon thelocation of the wireless device and a velocity of the wireless device;notifying the wireless device of the appointment location of thescheduled appointment; and notifying a device at the appointmentlocation of the scheduled appointment of the estimated time of arrivalof the wireless device.
 2. The method of claim 1, further comprisingdetermining a route of travel for the wireless device to the appointmentlocation of the scheduled appointment.
 3. The method of claim 2, furthercomprising providing the route of travel to the wireless device.
 4. Themethod of claim 1, wherein calculating the estimated time of arrival atthe appointment location of the scheduled appointment is further basedupon historical data.
 5. The method of claim 4, wherein the historicaldata comprises a historical commute time from the location of thewireless device to the appointment location of the scheduledappointment.
 6. The method of claim 4, wherein the historical datacomprises an average of historical commute times of multiple wirelessdevices from the location of the wireless device to the appointmentlocation of the scheduled appointment.
 7. The method of claim 4, whereinthe historical data is received from a traffic source that trackstraffic trends.
 8. A non-transitory computer readable storage devicecomprising instructions that, when executed by a processor, cause theprocessor to perform operations comprising: receiving, responsive to aroll call request, a location of a wireless device; determining anappointment location among multiple appointment locations that isclosest to the location of the wireless device; scheduling anappointment at the appointment location determined to be the closest;calculating an estimated time of arrival of the wireless device at theappointment location of the scheduled appointment, wherein the time ofarrival is estimated based upon the location of the wireless device anda velocity of the wireless device; notifying the wireless device of theappointment location of the scheduled appointment; and notifying adevice at the appointment location of the scheduled appointment of theestimated time of arrival of the wireless device.
 9. The non-transitorycomputer readable storage device of claim 8, wherein the instructions,when executed by the processor, further cause the processor to determinea route of travel for the wireless device to the appointment location ofthe scheduled appointment.
 10. The non-transitory computer readablestorage device of claim 9, wherein the route of travel is provided tothe wireless device.
 11. The non-transitory computer readable storagedevice of claim 8, wherein calculating the estimated time of arrival atthe appointment location of the scheduled appointment is further basedupon historical data.
 12. The non-transitory computer readable storagedevice of claim 10, wherein the historical data comprises a historicalcommute time from the location of the wireless device to the appointmentlocation of the scheduled appointment.
 13. The non-transitory computerreadable storage device of claim 10, wherein the historical datacomprises an average of historical commute times of multiple wirelessdevices from the location of the wireless device to the appointmentlocation of the scheduled appointment.
 14. A device, comprising: aprocessor; a memory, in communication with the processor, the memoryhaving instructions stored thereon that, when executed by the processor,cause the processor to perform operations comprising: receiving,responsive to a roll call request, a location of a wireless device;determining an appointment location among multiple appointment locationsthat is closest to the location of the wireless device; scheduling anappointment at the appointment location determined to be the closest;calculating an estimated time of arrival of the wireless device at theappointment location of the scheduled appointment, wherein the time ofarrival is estimated based upon the location of the wireless device anda velocity of the wireless device; notifying the wireless device of theappointment location of the scheduled appointment; and notifying adevice at the appointment location of the scheduled appointment of theestimated time of arrival of the wireless device.
 15. The device ofclaim 14, wherein the instructions, when executed by the processor,further cause the processor to determine a route of travel for thewireless device to the appointment location of the scheduledappointment.
 16. The device of claim 15, wherein the route of travel isprovided to the wireless device.
 17. The device of claim 14, whereincalculating the estimated time of arrival at the appointment location ofthe scheduled appointment is further based upon historical data.
 18. Thedevice of claim 17, wherein the historical data comprises a historicalcommute time from the location of the wireless device to the appointmentlocation of the scheduled appointment.
 19. The device of claim 17,wherein the historical data comprises an average of historical commutetimes of multiple wireless devices from the location of the wirelessdevice to the appointment location of the scheduled appointment.
 20. Thedevice of claim 17, wherein the historical data is received from atraffic source that tracks traffic trends.